// pages/itgexemycrt/itgexemycrt.js
const App = getApp()

//网络请求封装
import Request_post from "../../../../../request/Request_post"
import Request_get from "../../../../../request/Request_get"

//系统设置项目:(请求地址-在封装中已经引入，这里不需要;   api调用的Appid-partner_app_id;   渠道ID-as_appid)
import config from '../../../../../config/config'; 

//引入时间函数
var dateArray = require("../../../../../utils/CustomFunction/getDayFirstNowLast.js")
var time = require("../../../../../utils/CustomFunction/getNowTime.js")

//引入日期时间：（格式化、反格式化）函数
var formatDate = require("../../../../../utils/CustomFunction/dateFormat.js")
var unformatDate = require("../../../../../utils/CustomFunction/dateUnFormat.js")


Page({

	/**
	 * 页面的初始数据
	 */
	data: {

		//Title图片的网络地址链接
		Title_Image:config.imageUrl+"title_member_ItgExchangeEmyCrt.jpg",
		Virtualcard_background:config.imageUrl+"Virtualcard_background.jpg",
		//空页面
		EmptyPage:config.imageUrl+"EmptyPage.png",
		//规则选择角标
		UrlSelect:config.imageUrl+"UrlSelect.png",


		mbrclsdes:"",
		mbrclsid:"",
		currentTab:"0",
		mbrclsTabsIndex:0,
		itgExchangeTabsIndex:0,
		// mbrclsid:"01",
		// mbrclsid
		display_show:true,

	},

	 /** 
   * 切换固定标签页 : 点击切换(兑换会员币/兑换会员券) -- 后台程序 积分兑换会员币没有单独的兑换会员券，所以目前不用
   */
  // swichNav: function (e) {
  //   var that = this;
  //   if (that.data.currentTab === e.target.dataset.current) {
	// 		return true;
  //   } else {
  //     that.setData({
	// 			currentTab: e.target.dataset.current
	// 		})
  //   }
	// },


	/**
	 * 切换动态标签页 : 点击切换(会员类型){for循环得到会员类型}
	 */
	mbrclsNav: function (event) {
		var that = this;
		var index =  event.currentTarget.dataset.index;
		that.setData({
			// 将接收到的两个参数（index & mbrclsid）赋值
			mbrclsTabsIndex: index,    
			mbrclsid:event.currentTarget.dataset.mbrclsid,
			mbrclsdes:event.currentTarget.dataset.mbrclsdes,
		});
		/** Api请求：13-001 会员积分兑币规则列表查询  */
		Request_get.get(
			config.domainName+"api_wxmkt_server/mbritgemy/listrulmbritgemy",
			{
				mbrclsid: that.data.mbrclsid,
			},
			function(res){
				that.setData({
					itg_emycrt_rul:res.return_data,
					display_show:true  //如果有多个阶段会员等级，并且已勾选了某一个兑币规则，那么当切换标签（会员类型的时候），将选中状态重置一下
				})

			}
		)
		

	},


	// 点击选择 积分兑币规则框，获得标签传递的参数 index、emyaddamt、useitgvlu、rulbllno、vlddays、vlddtm、vlddtmtypid
	ExchangeNav: function (event) {
		// console.log( event.currentTarget.dataset)   //测试打印
		var that = this;
		var index =  event.currentTarget.dataset.index;
		var emyaddamt = event.currentTarget.dataset.emyaddamt;
		var useitgvlu = event.currentTarget.dataset.useitgvlu;
		var rulbllno = event.currentTarget.dataset.rulbllno;
		var vlddays = event.currentTarget.dataset.vlddays;
		var vlddtm = event.currentTarget.dataset.vlddtm;
		var vlddtmtypid = event.currentTarget.dataset.vlddtmtypid;

    this.setData({
			ExchangeTabsIndex: index,  // 将 当前点击的变量itgExchangeTabsIndex 与 是否显示的变量display_show 赋值
			display_show:false,
			emyaddamt:emyaddamt,
			useitgvlu:useitgvlu,
			rulbllno:rulbllno,
			vlddays:vlddays,
			vlddtm:vlddtm,
			vlddtmtypid:vlddtmtypid,
		})
		// console.log(this.data.ExchangeTabsIndex)
			if(that.data.vlddtmtypid == "01"){  	//有效期类型 = ‘01’的 则为按有效天数到期，按当前日期后X天计算具体到期日期
				function GetDateStr(AddDayCount) {  //js获取日期：前天、昨天、今天、明天、后天: GetDateStr(0)—— 0为今天，-X为前多少天 +X为后多少天
					var dd = new Date();
					dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
					var y = dd.getFullYear(); 
					var m = (dd.getMonth()+1)<10?"0"+(dd.getMonth()+1):(dd.getMonth()+1);//获取当前月份的日期，不足10补0
					var d = dd.getDate()<10?"0"+dd.getDate():dd.getDate();//获取当前几号，不足10补0
					return y+"-"+m+"-"+d; 
				}
				that.setData({
					// emycrt_vlddtm:GetDateStr(vlddays)
					emycrt_vlddtm:GetDateStr(vlddays).substring(0,4)+GetDateStr(vlddays).substring(5,7)+GetDateStr(vlddays).substring(8,10)+"235959"
				})
				//console.log("按有效天数到期，具体到期日："+that.data.emycrt_vlddtm); 
			}else if(that.data.vlddtmtypid == "02"){
				that.setData({
					emycrt_vlddtm:vlddtm
				})
			}
	},


	//未注册会员点击注册
	regNow:function(){
		wx.redirectTo({ 
		  url:"/SubpkgPublicPage/pages/PublicPage/PrivacyPolicy/PolicyMain/PolicyMain"
		});
	 },
  

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function () {
		var that = this

		// 会员是否注册的标志regflg
		getApp().loginPromise.then(v => {	//app.js的Promise成功回调（全局变量赋值成功后才执行请求）
			this.setData({regflg: App.globalData.regflg})
			// console.log(App.globalData.regflg)
		 })



		// 从会员信息缓存中获取会员币 & 会员券的余额
		getApp().loginPromise.then(v => {	//app.js的Promise成功回调（全局变量赋值成功后才执行请求）
			Request_get.get(
				config.domainName+"api_wxmkt_server/mbrreg/findwxmbr",
				{},
				function(res){
					if(res != "undefined" && res.return_no == 1 ){
						that.setData({
							vldemyamt: res.return_data.vldemyamt,
							vldcrtamt:res.return_data.vldcrtamt,	
						})
					}
				}
			)
		})
	},

	
	/**
	 * 点击积分兑换按钮
	 */
	ExchangerulNav:function(e){
		// console.log(e)
		var that = this
		//使用引用getDayFirstNowLast()函数，获取今天的日期
		const getdateArray = dateArray.getDayFirstNowLast()
		const today = getdateArray[1]
		//使用引用getNowTime()函数，获取当前时间
		const getTime = time.getNowTime()

		if(that.data.useitgvlu == '' || that.data.emyaddamt == '' || that.data.ExchangeTabsIndex < 0){
			wx.showModal({
				title: "操作出错",
				content: '未选择【积分兑币】规则',
				showCancel:false,
		})
		}else{
			// console.log(that.data.emycrt_vlddtm)
			//积分兑币-------获取api接口：mbritgemy I02-会员积分兑币
			/** Api请求：13-003 会员积分兑币  **/
			// console.log(that.data.mbrclsid)
			// console.log(config.cltid)
			// console.log("12")
			// console.log(today+getTime)
			// console.log(that.data.rulbllno)
			// console.log(Date.now().toString(16))
			// console.log(that.data.useitgvlu)
			// console.log(that.data.emyaddamt)
			// console.log("51")
			// console.log("y")
			// console.log(unformatDate.DatString(that.data.emycrt_vlddtm))
			// console.log(that.data.emycrt_vlddtm)


			Request_post.post(
				config.domainName+"api_wxmkt_server/mbritgemy/mbritgemy",
				{
					mbrclsid: that.data.mbrclsid,	
					oprcltid: config.cltid,
					oprid: "12",
					oprdat: today+getTime, 
					rulbllno: that.data.rulbllno,
					srcbllno: Date.now().toString(16),	//来源单号，用时间戳生成（16位）
					useitgvlu: that.data.useitgvlu,
					addamt: that.data.emyaddamt,
					emyclsid: "51",
					accflg: "y",
					vlddtm: unformatDate.DatString(that.data.emycrt_vlddtm),   //that.data.emycrt_vlddtm 为 yyyy-mm-dd hh:mm:ss 使用反格式化后，变为yyyymmddhhmmss
					brief: "积分兑换会员币"
				},
				function(res){
					if(res != "undefined" && res.return_no == 1 ){
						var vlddtm = unformatDate.DatString(that.data.emycrt_vlddtm) 
						wx.showModal({
							title: "积分兑币成功",
							content: "成功兑换["+that.data.emyaddamt+"]元会员币\r\n消耗["+that.data.useitgvlu+"]积分\r\n会员币到期日："+vlddtm.substring(0,4)+"-"+vlddtm.substring(4,6)+"-"+vlddtm.substring(6,8),//+" "+"23:59:59",
							showCancel:false,
							success (res) { //回调res （点击确定后，跳转到index）
								if (res.confirm){
									success:(
										that.onShow()   //实现刷新：点击确定后，调用 this.onShow()
									)
								}
							}
						})
					}else{
						wx.showModal({
							title:res.return_msg,
						})
					}
				}
			)
		}
	},

	
		
	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {

		

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {
		var that = this
		getApp().loginPromise.then(v => {	//app.js的Promise成功回调（全局变量赋值成功后才执行请求）
		/** Api请求：04-001 会员信息查询（验证已绑定）  **/
			Request_get.get(
				config.domainName+"api_wxmkt_server/mbrreg/findwxmbr",
				{},
				function(res){
				that.setData({
					vldemyamt:res.return_data.vldemyamt,
					vldcrtamt:res.return_data.vldcrtamt,
					ExchangeTabsIndex:-1
				})
			})
		})


		/**
		 * 获取当前会员的：当前选择的会员类型可用的积分值
		 */
		//I03-会员类型可兑币积分余额查询
		/** Api请求：13-002 会员类型可兑币积分余额查询 **/
		var that = this
		getApp().loginPromise.then(v => {	//app.js的Promise成功回调（全局变量赋值成功后才执行请求）
			Request_get.get(
				config.domainName+"api_wxmkt_server/mbritgemy/listmbrclslevamt",
				{},
				function(res){
				if(res != "undefined" && res.return_no == 1){
					that.setData({
						mbrcls_itg:res.return_data,
						mbrclsid:res.return_data[0].mbrclsid,   //取[会员类型可兑币积分余额]数组的第一条记录的mbrclsid作为默认的第一个会员类型，如果有其他的会员类型通过点击标签页获取
						mbrclsdes:res.return_data[0].mbrclsdes,
					})
					// 获取当前会员类型对应的积分兑币规则(本次在onShow()调用请求——页面加载的时候需要显示规则，另外在兑币成功后，调用一下 this.onShow()函数,可实现刷新效果)
					Request_get.get(
						config.domainName+"api_wxmkt_server/mbritgemy/listrulmbritgemy",
						{
							mbrclsid: that.data.mbrclsid,
						},
						function(res){
							// console.log(res)
							that.setData({
								itg_emycrt_rul:res.return_data,
								ExchangeTabsIndex:-1   //兑币成功后，将动态类 ExchangeTabsIndex 赋一个<>index的数值，使其初始化一下
							})
						}
					)
				}else{
					wx.showModal({
						title:res?res.return_msg:'会员等级列表获取失败'
					})
				}
					
			})
		})

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {

	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {

	}
})